#pragma once
class WPENGIN_API CSoundSystem:public Singleton<CSoundSystem>
{
	friend class Singleton<CSoundSystem>;
  CSoundSystem(void);
public:

	CSoundManager *  GetSoundManager();
	CSound * CreateSound(LPCTSTR strSoundFile);
	CStreamingSound * CreateStreamSound(LPCTSTR strSoundFile ,bool bPlayingBackGround = false,bool bLooped = true);
	~CSoundSystem(void);

private:
	CSoundManager * m_SoundManager;


#pragma region UnitTest
#ifdef _DEBUG


	class GameUnitTest :  public ITerminate ,public IInitialize,IRenderable
	{
		void  OnTerminate( void );
		HRESULT  OnInitialize( void );
		virtual void OnD3D9FrameRender( float fElapsedTime );
	    CSound * pSound;
	};
public:
	static void UnitTest();

#endif // _DEBUG
#pragma endregion UnitTest

};

